/**
 * @filename:ReportCommissionService ReportCommission
 * @project wallet-sign  V1.0
 * Copyright(c) 2018 BianPeng Co. Ltd. 
 * All right reserved. 
 */
package com.yixun.qfbao.service;

import com.yixun.common.page.Page;
import com.yixun.qfbao.model.ReportCommission;
import com.yixun.qfbao.model.dto.CommissionSummaryDto;
import com.yixun.qfbao.model.dto.CustomerPremisesCommissionDto;
import com.yixun.qfbao.model.dto.IndexCommissionStatisticsDto;
import com.yixun.qfbao.model.dto.ReportCommissionDto;
import com.yixun.qfbao.xf.model.dto.CustomerPremisesDto;

import java.util.List;
/**   
 *  
 * @Description:  报备佣金信息表——SERVICE
 * @Author:       BianPeng   
 * @CreateDate:   ReportCommission
 * @Version:      V1.0
 *    
 */
public interface ReportCommissionService {
	
	/**
	 * @explain 查询报备佣金信息表对象
	 * @param   id
	 * @return  ReportCommission
	 * @author  BianPeng
	 */
	public ReportCommission selectById(Long id);
	
	/**
	 * @explain 删除报备佣金信息表对象
	 * @param   id
	 * @return  int
	 * @author  BianPeng
	 */
	public int deleteById(Long id);
	
	/**
	 * @explain 添加报备佣金信息表对象
	 * @param   reportCommission
	 * @return  int
	 * @author  BianPeng
	 */
	public int insert(ReportCommission reportCommission);
	
	/**
	 * @explain 修改报备佣金信息表对象
	 * @param   reportCommission
	 * @return  int
	 * @author  BianPeng
	 */
	public int update(ReportCommission reportCommission);
	
	/**
	 * @explain 查询报备佣金信息表集合
	 * @param   reportCommission
	 * @return  List<ReportCommission>
	 * @author  BianPeng
	 */
	public List<ReportCommission> queryReportCommissionList(ReportCommission reportCommission);


	/**
	 *  认购状态添加报备佣金信息
	 * @param cpDto
	 * @param operationId 操作者id
	 * @return
	 */
	public ReportCommission addForReport(ReportCommission rc, Long operationId);

	/**
	 *  查询报备佣金信息
	 * @param dto
	 * @return
	 */
	public ReportCommission selectOne(ReportCommissionDto dto);

	public void saveOrUpdateForReport(ReportCommission reportCommission, CustomerPremisesDto cpDto, Long operationId);

	/** 机构佣金信息 */
	public Page<CommissionSummaryDto> selectCommissionSummaryDtoList(CommissionSummaryDto entity, int begin, int end, String accountType, String partnerId);

	/** 根据机构和楼盘查询报备佣金列表 */
	public Page<CustomerPremisesCommissionDto> selectCustomerPremisesCommissionDtoList(CustomerPremisesCommissionDto entity, int begin, int end);

	/** 机构和楼盘佣金信息汇总 */
	public CommissionSummaryDto selectCommissionByPremisesAndCompany(CommissionSummaryDto entity);

	/** 用于初始化 */
	public void initDevCompanyId();

	/** 巧渠道首页佣金总额信息 */
	public IndexCommissionStatisticsDto getIndexCommissionStatistics(IndexCommissionStatisticsDto commissionDto);

}